/**
 * 保留小数
 * @param value 值
 * @param digits 位数
 */
export const roundNumber = (value: number, digits = 2): string => {
  return value.toFixed(digits)
}

/**
 * 格式化金额
 * @param value 金额数值
 * @param isShowUnit 显示单位
 */
export const formatAmount = (value: number, isShowUnit = false): string => {
  const result = {
    value: 0,
    unit: ''
  }

  const isNegative = value < 0
  const absoluteValue = Math.abs(value)

  if (absoluteValue) {
    const k = 10000
    const sizes = ['', '万', '亿', '万亿']
    let i

    if (absoluteValue < k) {
      result.value = parseFloat(absoluteValue.toFixed(2))
      result.unit = ''
    } else {
      i = Math.floor(Math.log(absoluteValue) / Math.log(k))
      result.value = parseFloat(((absoluteValue / Math.pow(k, i))).toFixed(2))
      result.unit = sizes[i]
    }
  }

  // 加上负号
  const formattedValue = isNegative ? `-${result.value}${result.unit}` : `${result.value}${result.unit}`

  return isShowUnit ? `￥${formattedValue}` : formattedValue
}
